package javabasics.designpattern.singleton;

/**
 * Singleton 测试类
 *
 * @Author suxiaoxiao
 * @Date 2019/5/30 22:50
 * @Version 1.0
 */
public class SingletonTest {

    public static void main(String[] args) {
        // 创建普通单例
//        Singleton.createString();

        // 多线程测试单例模式性能
        LazySingletonThread lazySingletonThread = new LazySingletonThread();
        Thread thread = new Thread(lazySingletonThread);
        thread.start();
        Thread thread1 = new Thread(lazySingletonThread);
        thread1.start();
        Thread thread2 = new Thread(lazySingletonThread);
        thread2.start();
        Thread thread3 = new Thread(lazySingletonThread);
        thread3.start();
        Thread thread4 = new Thread(lazySingletonThread);
        thread4.start();

        // 多线程测试结果：
        // 普通单例模式 17ms
        // 线程安全的懒加载模式 40ms
        // 内部类优化的线程安全单例模式 17ms
    }

}
